# demo01_re.py
import re
# 1.re.match(正则字符串,目标字符串): 判断目标字符串是不是以正则表示的内容开头
# \d: 单个数字字符串(0123456789)    \d{3}: 单个数字字符串连续出现3次
result = re.match("\d{3}", "123aaa")  # result: 接收正则匹配的结果
print(result)  # <_sre.SRE_Match object; span=(0, 3), match='123'>
print(result.group())  # 123 获取匹配到的字符串
# 2.re.search(正则字符串,目标字符串):在字符串中查找正则表达式模式的第一次出现，如果匹配成功，则返回一个匹配对象；否则返回 None
result = re.search("\d{3}", "abc567qwer789")
print(result)  # <_sre.SRE_Match object; span=(3, 6), match='567'>
print(result.group())  # 567 获取匹配到的字符串
# 3.re.findall(正则字符串,目标字符串):在字符串中查找正则表达式模式的所有出现；返回一个匹配对象的列表
result = re.findall("\d{3}", "abc567qwer789")
print(result)  # ['567', '789']
# 4.re.finditer(正则字符串,目标字符串): 查找字符串中所有匹配字符
result = re.finditer("\d{3}", "abc567qwer789")
for item in result:
    print(item)
    print(item.group())
# 5.re.split(正则字符串,目标字符串): 根据正则表达式中的分隔符把字符分割为一个列表，并返回成功匹配的列表
result = re.split("-|\.", "hello-world.tar.gz")
print(result)  # ['hello', 'world', 'tar', 'gz']
# 6.re.sub(正则字符串,替换内容,目标字符串): 把字符串中所有匹配正则表达式的地方替换成新的字符串
result=re.sub("\d{3}", "benben", "Hi 123, Nice to meet you, 456")
print(result)   # Hi benben, Nice to meet you, benben
# 在这些函数内部  正则字符串-----编译------正则表达式
# 7.re.compile(正则字符串):将字符串编译成正则表达式，从而进行数据匹配
patt = re.compile("\d{3}")  # 将"\d{3}"字符串编译成正则表达式
# 通过正则对象做数据搜索  patt.search(目标字符串)
result = patt.search("abc567qwer789")
print(result)  # <_sre.SRE_Match object; span=(3, 6), match='567'>
print(result.group())  # 567
print(patt.findall("abc567qwer789"))  # ['567', '789']











